﻿using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.ServiceModel.Web;
using System.Text;

namespace AssetService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IService1" in both code and config file together.
    [ServiceContract]
    public interface IAssetService
    {
        [OperationContract]
        Model.User Login(string UserName, string Password);

        [OperationContract]
        DataTable GetMetaData(int UserID);

        [OperationContract]
        DataTable GetAssets(int UserID, string MetaData);

        [OperationContract]
        DataTable GetAssetDetails(int AssetID);

        [OperationContract]
        DataTable GetPurchaseDetails(int AssetID);

        [OperationContract]
        DataTable GetScheduleDetails(int AssetID);

        [OperationContract]
        DataTable GetServiceDetails(int AssetID);

        [OperationContract]
        DataTable GetWarrantyDetails(int AssetID);

    }

    [DataContract]
    public class User
    {
        int userID = 0;
        string username = "";
        string password = "";

        [DataMember]
        public int UserID
        {
            get { return userID; }
            private set { userID = value; }
        }

        [DataMember]
        public string Username
        {
            get { return username; }
            set { username = value; }
        }

        [DataMember]
        public string Password
        {
            get { return password; }
            set { password = value; }
        }
    }

    //[DataContract]
    //public class Register
    //{
    //    string username = "";
    //    string password = "";

    //    [DataMember]
    //    public string Username
    //    {
    //        get { return username; }
    //        set { username = value; }
    //    }

    //    [DataMember]
    //    public string Password
    //    {
    //        get { return password; }
    //        set { password = value; }
    //    }
    //}


    // Use a data contract as illustrated in the sample below to add composite types to service operations.
    //[DataContract]
    //public class CompositeType
    //{
    //    bool boolValue = true;
    //    string stringValue = "Hello ";

    //    [DataMember]
    //    public bool BoolValue
    //    {
    //        get { return boolValue; }
    //        set { boolValue = value; }
    //    }

    //    [DataMember]
    //    public string StringValue
    //    {
    //        get { return stringValue; }
    //        set { stringValue = value; }
    //    }
    //}
}
